今天聊一个简单的知识点。 在

🔍 溯源 ✍️ Jason | 📅 2026-07-03 | 👍 1 | 原帖↗
#知识星球 #立芯嵌入式 #来源/立芯星球 #技术/Bootloader #技术/中断 #质量/普通

原帖 | Jason | 2026-07-03 14:16 | 👍1 | 阅读约1

今天聊一个简单的知识点。

在嵌入式 Linux 设备中,uboot 启动第一阶段,有没有用到中断?

答案:没有。

其实在设备的启动流程中,中断不是全程生效的,uboot 只是完成硬件初始化,环境参数设置,代码搬运等动作,用不到中断。屏蔽中断是为了避免因为意外中断使得 boot 失败,毕竟很多外设还没有初始化,对应的中断处理函数也没有准备好。

其实所有的嵌入式 Linux/Android 设备,在启动流程的某个或者几个阶段,都是会屏蔽中断的,因为他认为我目前在做的事情不希望任何人来干扰,或者为了保证时序,必须禁用中断。

并且因为这个我还遇到一个查了好久的 BUG:项目中我们要在 Linux kernel 使用中断,发现有一组 PIN 脚在注册中断处理函数后,触发中断没有反应。怀疑过驱动写错,怀疑过硬件没有中断触发波形,又是飞线又是编驱动,发现没有任何作用。

最后查寄存器,发现这一组 PIN 的中断被 mask 了,原因是启动流程中,boot owner 手动 mask 了所有 PIN 的中断,但是打开中断的时候漏了一组 PIN 没打开,所以这组 PIN 的中断一直不能用。

所以这类问题就是最后查到底层寄存器,才看到原因。


相关笔记